Auf Dokument zugreifen
Mit diesem kurzen Programm zeige ich dir, wie du an das im BDS gespeicherte Bild kommst und es auf dem Dynpro ausgeben kannst.
Eigene Bilder speicherst du mit der Transaktion OAER.
Info
Zu dem folgenden Programm musst du ein Dynpro mit CustomControl anlegen. Doppelklicke dazu auf “5000” bei der Anweisung CALL SCREEN 5000.
In der Elementliste des Dynpros trage zum Typ “OK” das Feld “SY-UCOMM” ein.
Ablauflogik
Die Ablauflogik sieht wie folgt aus:
PROCESS BEFORE OUTPUT.
MODULE STATUS_5000.
*
PROCESS AFTER INPUT.
MODULE USER_COMMAND_5000.
Im Module “STATUS_5000” müssen Sie noch mit Doppelklick auf “5000” bei der Anweisung “SET PF-STATUS ‘5000’” den GUI-Status anlegen. Tragen Sie zu den Funktionscodes für den grünen Pfeil zurück, den gelben Pfeil nach oben und das rote Kreuz jeweils “BACK” ein.
Hinweis:
Zu einem BDS-Objekt (p_pic) können mehrere Objekte gespeichert werden. Die Methode GET_WITH_URL liefert in dem Fall mehrere URLs zurück.
Um Informationen zu den enthaltenen Dokumenten zu erhalten, benutzen Sie bitte die Methode cl_bds_document_set=>GET_INFO.
Ergebnis
Anzeige eines Bildes aus dem BDS |
Code
REPORT z_bds_pic_show.
PARAMETERS p_pic TYPE bds_typeid DEFAULT ‘ENJOYSAP_LOGO’.
START-OF-SELECTION.
*** Benötigte Variablen
DATA:
lref_cont TYPE REF TO cl_gui_custom_container,
lref_img TYPE REF TO cl_gui_picture,
lt_url TYPE TABLE OF bapiuri,
ls_url TYPE bapiuri.
IF lref_cont IS INITIAL.
*** Container erzeugen
*** Der Name des CustomControls auf dem Dynpro heisst “PICTURE”
CREATE OBJECT lref_cont
EXPORTING
container_name = ‘PICTURE’ .
*** Picture Control erzeugen
CREATE OBJECT lref_img
EXPORTING
parent = lref_cont.
*** Ermitteln der URL zum Bild
CALL METHOD cl_bds_document_set=>get_with_url
EXPORTING
classname = ‘PICTURES’
classtype = ‘OT’
object_key = p_pic
CHANGING
uris = lt_url.
*** Ermittelte URL lesen
READ TABLE lt_url INTO ls_url INDEX 1.
*** …und in das PictureControl laden
CALL METHOD lref_img->load_picture_from_url
EXPORTING
url = ls_url-uri
EXCEPTIONS
OTHERS = 1.
ENDIF.
CALL SCREEN 5000.
*&———————————————————————*
*& Module USER_COMMAND_5000 INPUT
*&———————————————————————*
MODULE user_command_5000 INPUT.
IF sy-ucomm = ‘BACK’.
SET SCREEN 0. LEAVE SCREEN.
ENDIF.
ENDMODULE. ” USER_COMMAND_5000 INPUT
*&———————————————————————*
*& Module STATUS_5000 OUTPUT
*&———————————————————————*
MODULE status_5000 OUTPUT.
SET PF-STATUS ‘5000’.
ENDMODULE. ” STATUS_5000 OUTPUT
- 7. December: Excel Racing Simulation – Root Vole Race - 7. Dezember 2024
- 5. December: ABAPConf - 5. Dezember 2024
- 4. December: Only a lazy developer is a good developer - 4. Dezember 2024